export interface IProps {
  global: any;
  buttonPermissions: any;
  stationDataPowerConfig: any;
  menuCode: string;
}

export interface IDataSourceType {
  groupId?: number | string; //集团ID
  groupName?: string; //集团名称
  latitude?: number | string; //纬度
  longitude?: number | string; //经度
  provinceId?: number | string; //省份ID
  provinceName?: string; //省份名称
  rank?: number; //顺序号
  showName?: string; //显示名称
  stationId?: number | string; //交易单元ID
  stationName?: string; //交易单元名称
  visible?: boolean; //是否显示 0：不显示 1：显示
  id?: number; // id
}

export interface IApplyType {
  groupId?: number | string; //集团ID
  groupName?: string; //集团名称
  latitude?: number | string; //纬度
  longitude?: number | string; //经度
  provinceId?: number | string; //省份ID
  provinceName?: string; //省份名称
  rank?: number; //顺序号
  showName?: string; //显示名称
  stationId?: number | string; //交易单元ID
  stationName?: string; //交易单元名称
  visible?: number; //是否显示 0：不显示 1：显示
  id?: number; // id
}

export enum IStationLongitudeLatitudeConfigPermissions {
  STATIONLONGITUDELATITUDECONFIGSAVE = 'StationLongitudeLatitudeConfigSave', // 天气预测场站配置管理新增按钮
  STATIONLONGITUDELATITUDECONFIGUPDATE = 'StationLongitudeLatitudeConfigUpdate', // 天气预测场站配置管理编辑按钮
  STATIONLONGITUDELATITUDECONFIGREMOVE = 'StationLongitudeLatitudeConfigRemove', // 天气预测场站配置管理删除按钮
}

// 操作类型
export enum IOperationType {
  ADD = '1', // 新增
  EDIT = '2', // 编辑
  DETELE = '3', // 删除
}

// 操作类型
export enum IVisibleType {
  SHOW = 1, // 显示
  HIDDEN = 0, // 不显示
}

export interface IOptionType {
  label?: string;
  value?: string | number;
  children?: IOptionType[];
}

export interface IStationDataType {
  stationId?: number; // 单元id
  stationName?: string; // 单元名称
}

export interface IOrginDealElementOptions {
  id?: number;
  label?: string;
  value?: string;
  groupId: string;
  groupName: string;
  marketId: string;
  marketName: string;
  children?: IOrginDealElementOptions[];
}

export interface IDealElementOptions {
  id?: number;
  key?: string;
  label?: string;
  parentKey?: number;
  regionId?: string;
  title: string;
  value?: string;
  provinceId?: string;
  children?: IDealElementOptions[];
}

export type IDealElementDataObj = Record<number, IDealElementOptions[]>;

export interface IStationsData {
  dealElementOptions: IDealElementOptions[];
  dealElementModalOptions: IDealElementOptions[];
  dealElementDataObj: IDealElementDataObj;
  originDealElementOptions?: IOrginDealElementOptions[];
}
